package com.shangxian.giveithome.service;

import com.shangxian.giveithome.entity.PageableDetails;
import com.shangxian.giveithome.entity.report.InputBlackList.Number;
import com.shangxian.giveithome.entity.report.InputBlackList.ReportList;
import com.shangxian.giveithome.entity.report.InputBlackList.UserConditionParam;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;

/**
 * @author Administrator
 * 新举报中心接口
 */
@Service
public interface NewReportService {

    /**
     * 根据用户名或者手机号查询举报记录
     * @param value 手机号或者用户名
     * @param pageable
     * @return 结果返回为二者的并集
     */
    PageableDetails findBlackListByUserOrPhone(String value, Pageable pageable);

    /**
     * 提交举报表单
     * @param reportList
     */
    void submitReport(ReportList reportList);


    /**
     * 后台查询黑名单记录，可传递条件
     * 默认全部查询，0只查询待审核的记录，1只查询审核封禁的记录，2只查询审核正常的用户
     * @param state
     * @param pageable
     * @return
     */
    PageableDetails findBlackListHistory(Long state, Pageable pageable);

    /**
     * 查询封禁表中所有封禁的用户
     * @param pageable
     * @return
     */
    PageableDetails findAllBlockedUser(Pageable pageable);

    /**
     * 根据用户手机号封禁用户
     * 首先判断该手机号是否存在
     * @param numberParam
     */
    void blockedUser(Number numberParam);

    /**
     * 根据封禁表信息解禁用户
     * @param param
     */
    void unblockUser(Number param);

    /**
     * 后台审核正常
     * @param numberParam
     */
    void auditNormal(Number numberParam);

    /**
     * 根据条件查询用户信息
     * @param condition
     * @param pageable
     * @return
     */
    PageableDetails findAllUser(UserConditionParam condition, Pageable pageable);






}
